import type UpdAccRoleRelRequest from '../../base/request/UpdAccRoleRelRequest' 
import type UpdUserRequest from '../../base/request/UpdUserRequest' 
import type UpdAccountRequest from '../../base/request/UpdAccountRequest' 


/** 用户和账号角色信息更新对象(!!不支持部分更新  必须全对象传递), */
export default class UpdUserAndRelRequest  { 
  /** 用户信息 */
  tUser!:UpdUserRequest;
  /** 用户绑定角色 */
  roleRelList!:UpdAccRoleRelRequest[];
  /** 账号信息 */
  tAccount!:UpdAccountRequest;


  /**通过JSONObject创建实例对象 */
  public static getInstanceByJSONObj(jsonObj:any):UpdUserAndRelRequest{  
    let instance=new UpdUserAndRelRequest()  
    return Object.assign(instance, jsonObj) 
  }


  /** 通过属性参数创建实例对象 */
  public static getInstanceByParam(tUser:UpdUserRequest,roleRelList:UpdAccRoleRelRequest[]
                                   ,tAccount:UpdAccountRequest){ 
    let instance=new UpdUserAndRelRequest()  
    instance.tUser=tUser;
    instance.roleRelList=roleRelList;
    instance.tAccount=tAccount;
    return instance 
  }


  /** 类属性的申明静态变量(适用于直接用到Class.fieldName的场景) */
   static fieldNames={
       /**用户信息*/
      tUser:"tUser",
      /**用户绑定角色*/
      roleRelList:"roleRelList",
      /**账号信息*/
      tAccount:"tAccount" } 
}

